Autogenerated HTML docs for v1.7.11.1-104-ge7b44
diff --git a/RelNotes/1.7.12.txt b/RelNotes/1.7.12.txt index 79cbb56..f49eef5 100644 --- a/RelNotes/1.7.12.txt +++ b/RelNotes/1.7.12.txt
@@ -20,6 +20,20 @@ the wire, so that the server log can be examined to see the vintage distribution of clients. + * "git rebase -i" learned "-x <cmd>" to insert "exec <cmd>" after + each commit in the resulting history. + + * "git status" gives finer classification to various states of paths + in conflicted state and offer advice messages in its output. + + * "git submodule" learned to deal with nested submodule structure + where a module is contained within a module whose origin is + specified as a relative URL to its superproject's origin. + + * A rather heavy-ish "git completion" script has been split to create + a separate "git prompting" script, to help lazy-autoloading of the + completion part while making prompting part always available. + Foreign Interface @@ -31,6 +45,14 @@ * We no longer use AsciiDoc7 syntax in our documentation and favor a more modern style. + * "git index-pack" and "git pack-objects" use streaming API to read + from the object store to avoid having to hold a large blob object + in-core while they are doing their thing. + + * Code to match paths with exclude patterns learned to avoid calling + fnmatch() by comparing fixed leading substring literally when + possible. + Also contains minor documentation updates and code clean-ups. @@ -42,6 +64,27 @@ releases are contained in this release (see release notes to them for details). + * When "git log" gets "--simplify-merges/by-decoration" together with + "--first-parent", the combination of these options makes the + simplification logic to use in-core commit objects that haven't + been examined for relevance, either producing incorrect result or + taking too long to produce any output. Teach the simplification + logic to ignore commits that the first-parent traversal logic + ignored when both are in effect to work around the issue. + (merge 6e513ba jc/rev-list-simplify-merges-first-parent later to maint). + + * "git add" allows adding a regular file to the path where a + submodule used to exist, but "git update-index" does not allow an + equivalent operation to Porcelain writers. + (merge 242f55f hv/submodule-update-nuke-submodules later to maint). + + * "git diff --no-index" did not work with pagers correctly. + (merge af63b54 jk/diff-no-index-pager later to maint). + + * "git diff COPYING HEAD:COPYING" gave a nonsense error message that + claimed that the treeish HEAD did not have COPYING in it. + (merge 023e37c mm/verify-filename-fix later to maint). + * The documentation for "git cherry-pick A B..C" was misleading. (merge b98878e cn/cherry-pick-range-docs later to maint).
diff --git a/config.txt b/config.txt index 915cb5a..ccce4f6 100644 --- a/config.txt +++ b/config.txt
@@ -159,9 +159,10 @@ specified a refspec that isn't your current branch) and it resulted in a non-fast-forward error. statusHints:: - Directions on how to stage/unstage/add shown in the - output of linkgit:git-status[1] and the template shown - when writing commit messages. + Show directions on how to proceed from the current + state in the output of linkgit:git-status[1] and in + the template shown when writing commit messages in + linkgit:git-commit[1]. commitBeforeMerge:: Advice shown when linkgit:git-merge[1] refuses to merge to avoid overwriting local changes.
diff --git a/git-config.html b/git-config.html index d7d431c..fb90728 100644 --- a/git-config.html +++ b/git-config.html
@@ -1251,9 +1251,10 @@ </dt> <dd> <p> - Directions on how to stage/unstage/add shown in the - output of <a href="git-status.html">git-status(1)</a> and the template shown - when writing commit messages. + Show directions on how to proceed from the current + state in the output of <a href="git-status.html">git-status(1)</a> and in + the template shown when writing commit messages in + <a href="git-commit.html">git-commit(1)</a>. </p> </dd> <dt class="hdlist1">
diff --git a/git-rebase.html b/git-rebase.html index be5037d..983f8c8 100644 --- a/git-rebase.html +++ b/git-rebase.html
@@ -583,9 +583,9 @@ <h2 id="_synopsis">SYNOPSIS</h2> <div class="sectionbody"> <div class="verseblock"> -<div class="verseblock-content"><em>git rebase</em> [-i | --interactive] [options] [--onto <newbase>] +<div class="verseblock-content"><em>git rebase</em> [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>] -<em>git rebase</em> [-i | --interactive] [options] --onto <newbase> +<em>git rebase</em> [-i | --interactive] [options] [--exec <cmd>] --onto <newbase> --root [<branch>] <em>git rebase</em> --continue | --skip | --abort</div> <div class="verseblock-attribution"> @@ -782,7 +782,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<newbase> +--onto <newbase> </dt> <dd> <p> @@ -1043,6 +1043,35 @@ idea unless you know what you are doing (see BUGS below).</p></div> </dd> <dt class="hdlist1"> +-x <cmd> +</dt> +<dt class="hdlist1"> +--exec <cmd> +</dt> +<dd> +<p> + Append "exec <cmd>" after each line creating a commit in the + final history. <cmd> will be interpreted as one or more shell + commands. +</p> +<div class="paragraph"><p>This option can only be used with the <tt>--interactive</tt> option +(see INTERACTIVE MODE below).</p></div> +<div class="paragraph"><p>You may execute several commands by either using one instance of <tt>--exec</tt> +with several commands:</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>git rebase -i --exec "cmd1 && cmd2 && ..."</tt></pre> +</div></div> +<div class="paragraph"><p>or by giving more than one <tt>--exec</tt>:</p></div> +<div class="literalblock"> +<div class="content"> +<pre><tt>git rebase -i --exec "cmd1" --exec "cmd2" --exec ...</tt></pre> +</div></div> +<div class="paragraph"><p>If <tt>--autosquash</tt> is used, "exec" lines will not be appended for +the intermediate commits, and will only appear at the end of each +squash/fixup series.</p></div> +</dd> +<dt class="hdlist1"> --root </dt> <dd> @@ -1440,6 +1469,23 @@ in <tt>$SHELL</tt>, or the default shell if <tt>$SHELL</tt> is not set), so you can use shell features (like "cd", ">", ";" …). The command is run from the root of the working tree.</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>$ git rebase -i --exec "make test"</tt></pre> +</div></div> +<div class="paragraph"><p>This command lets you check that intermediate commits are compilable. +The todo list becomes like that:</p></div> +<div class="listingblock"> +<div class="content"> +<pre><tt>pick 5928aea one +exec make test +pick 04d0fda two +exec make test +pick ba46169 three +exec make test +pick f4593f9 four +exec make test</tt></pre> +</div></div> </div> <h2 id="_splitting_commits">SPLITTING COMMITS</h2> <div class="sectionbody"> @@ -1657,7 +1703,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2012-05-02 15:00:44 PDT +Last updated 2012-06-28 16:04:22 PDT </div> </div> </body>
diff --git a/git-rebase.txt b/git-rebase.txt index 147fa1a..2d71e4b 100644 --- a/git-rebase.txt +++ b/git-rebase.txt
@@ -8,9 +8,9 @@ SYNOPSIS -------- [verse] -'git rebase' [-i | --interactive] [options] [--onto <newbase>] +'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>] [<upstream>] [<branch>] -'git rebase' [-i | --interactive] [options] --onto <newbase> +'git rebase' [-i | --interactive] [options] [--exec <cmd>] --onto <newbase> --root [<branch>] 'git rebase' --continue | --skip | --abort @@ -210,7 +210,7 @@ OPTIONS ------- -<newbase>:: +--onto <newbase>:: Starting point at which to create the new commits. If the --onto option is not specified, the starting point is <upstream>. May be any valid commit, and not just an @@ -344,6 +344,27 @@ with the `--interactive` option explicitly is generally not a good idea unless you know what you are doing (see BUGS below). +-x <cmd>:: +--exec <cmd>:: + Append "exec <cmd>" after each line creating a commit in the + final history. <cmd> will be interpreted as one or more shell + commands. ++ +This option can only be used with the `--interactive` option +(see INTERACTIVE MODE below). ++ +You may execute several commands by either using one instance of `--exec` +with several commands: ++ + git rebase -i --exec "cmd1 && cmd2 && ..." ++ +or by giving more than one `--exec`: ++ + git rebase -i --exec "cmd1" --exec "cmd2" --exec ... ++ +If `--autosquash` is used, "exec" lines will not be appended for +the intermediate commits, and will only appear at the end of each +squash/fixup series. --root:: Rebase all commits reachable from <branch>, instead of @@ -521,6 +542,24 @@ use shell features (like "cd", ">", ";" ...). The command is run from the root of the working tree. +---------------------------------- +$ git rebase -i --exec "make test" +---------------------------------- + +This command lets you check that intermediate commits are compilable. +The todo list becomes like that: + +-------------------- +pick 5928aea one +exec make test +pick 04d0fda two +exec make test +pick ba46169 three +exec make test +pick f4593f9 four +exec make test +-------------------- + SPLITTING COMMITS -----------------